package day05;
import java.util.Arrays;

public class ArrayDemo {
    public static void main(String[] args) {

        //1)数组的定义：
        //声明整型数组a，包含5个元素，每个元素都是int类型，默认值为0
        int[] a = new int[5];
        //声明浮点型数组d，包含10个元素，每个元素都是double类型，默认值为0.0
        double[] d = new double[10];
        //声明布尔型数组b，包含26个元素，每个元素都是boolean类型，默认值为false
        boolean[] b = new boolean[26];

        //2)数组的初始化：---初始化的是数组中的元素
        int[] arr1 = new int[3];
        int[] arr2 = {2,5,8};
        int[] arr3 = new int[]{2,5,8};
        int[] arr4;
        //arr4 = {2,5,8};  编译错误，此方法只能声明同时初始化
        arr4 = new int[]{2,5,8};

        //3)数组的访问
        int[] arr = new int[3];
        System.out.println("数组的长度："+arr.length);
        System.out.println("数组第1个元素为："+arr[0]);
        arr[0] = 100;
        arr[1] = 200;
        arr[2] = 300;
//        arr[3] = 400;  运行时会出现数组下标越界异常
        System.out.println(arr[2]);
        System.out.println(arr[arr.length-1]); //输出最后一个元素的值


        //4)数组的遍历/迭代：从头到尾挨个走一遍
        /*
        int[] arr = new int[10];
        for (int i=0;i< arr.length;i++){ //遍历arr数组
            arr[i]=(int)(Math.random()*100);  //给每个元素赋值为0到99的随机数
            System.out.println(arr[i]);  //输出每个元素的值
         */

        //5)数组的复制
        /*
        int[] a = {10,20,30,40,50};
        int[] b = new int[6];
        //a:源数组
        //1:源数组的起始下标
        //b:目标数组
        //0:目标数组的起始下标
        //4:要复制的元素个数
        System.arraycopy(a,1,b,0,4);
        for (int i=0;i<b.length;i++){
            System.out.println(b[i]);
        }
         */
        /*
        int[] a = {10,20,30,40,50};
        //a:源数组
        //b:目标数组
        //6：目标数组的长度
        //  --若目标数组长度>源数组长度，则末尾补默认值
        //  --若目标数组长度<源数组长度，则将末尾的截掉
        int[] b = Arrays.copyOf(a,6);
        for (int i=0;i<b.length;i++){
            System.out.println(b[i]);
        }

         */

        }
    }

